﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using System.IO;
using DevExpress.XtraEditors.Controls;
using System.Diagnostics;
using DevExpress.XtraEditors.Repository;
using DevExpress.XtraGrid.Views.Grid;

namespace Gemciler_Uretim.İslemler
{
    public partial class ResimEkleme : DevExpress.XtraEditors.XtraForm
    {
        public ResimEkleme()
        {
            InitializeComponent();
        }
        DataTable dt = new DataTable();
        DataColumn sütun;
        DataRow satir;
        public string dosya_adi, par_30_resim_hedef_klasor_yolu, par_31_resim_kaynak_klasor_yolu, ilktarih;
        string AppPath = System.Windows.Forms.Application.StartupPath;
        DateTime olusturma_tarihi;
        SqlConnecitonClass sqlbaglanti = new SqlConnecitonClass();
        public int aktif_kullanici, sip_RECno;
        public string cari_kodu, siparis_seri, siparis_sira, bolum_adi,acilacak_dosya_adi;
        private void text_rapor_dosyası_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
        {
            FolderBrowserDialog fBrowser = new FolderBrowserDialog();
            fBrowser.ShowDialog();
            string secilenDizin = fBrowser.SelectedPath;
            text_kaynak.Text = secilenDizin;
            DizinIceriginiListeyeEkle(text_kaynak.Text);
        }
        private void DizinIceriginiListeyeEkle(string dizin)
        {
            try
            {
                dt.Clear();
                string[] dizindekiDosyalar = Directory.GetFiles(dizin);

                foreach (string dosya in dizindekiDosyalar)
                {
                    FileInfo fileInfo = new FileInfo(dosya);
                    dosya_adi = fileInfo.Name;
                    olusturma_tarihi = fileInfo.CreationTime;
                    satirEkle();
                }
            }
            catch { }
        }
        private void satirEkle()
        {
             satir = dt.NewRow();

             satir["DOSYA ADI"] = dosya_adi;
             //satir["OLUSTURMA"] = olusturma_tarihi;
            dt.Rows.Add(satir);
            
            gridControl1.DataSource = null;
            gridView1.Columns.Clear();
            // ---sip_special1='O' VEYA '' ONAY BEKLİYOR 
            gridControl1.DataSource = dt;
             this.gridControl1.TabIndex = 0;
            this.gridView1.OptionsBehavior.AllowIncrementalSearch = true;
            this.gridView1.OptionsView.ShowAutoFilterRow = true;
            this.gridView1.OptionsView.ShowGroupPanel = false; // gruplama alanı
            this.gridView1.OptionsBehavior.Editable = false;
            this.gridView1.OptionsBehavior.ReadOnly = false;
          
            gridView1.OptionsView.ColumnAutoWidth = false;
            this.gridView1.Appearance.HeaderPanel.TextOptions.WordWrap = DevExpress.Utils.WordWrap.Wrap;
            this.gridView1.ColumnPanelRowHeight = 55;

            gridView1.OptionsView.HeaderFilterButtonShowMode = FilterButtonShowMode.Button;
            gridView1.BestFitColumns();
        }
        private void ResimEkleme_Load(object sender, EventArgs e)
        {
           
            groupControl1.Visible = false;
            groupControl2.Visible = false;
            text_kaynak.Text = par_31_resim_kaynak_klasor_yolu;

            text_Hedef.Text = par_30_resim_hedef_klasor_yolu;
          
            text_sipari_no.Text= sip_RECno.ToString();
            sütun = new DataColumn("DOSYA ADI");
            sütun.DataType = Type.GetType("System.String");
            dt.Columns.Add(sütun);
            dateEdit1.EditValue = DateTime.Today;
            KayitliResimleriGetir();
        }
        private void KayitliResimleriGetir()
        {
            gridControl2.DataSource = null;
            gridView2.Columns.Clear();
            // ---sip_special1='O' VEYA '' ONAY BEKLİYOR 
            gridControl2.DataSource = sqlbaglanti.ShowTable("SELECT  AttachmentNo AS SN ,[FileName] AS ADI,cast ('' AS IMAGE)AS RESIM  from mye_AttachedFiles WHERE TableID=21 AND RecID_RECno="+sip_RECno+" ", CommandType.Text);
            this.gridControl2.TabIndex = 0;
            this.gridView2.OptionsBehavior.AllowIncrementalSearch = true;
            this.gridView2.OptionsView.ShowAutoFilterRow = true;
            this.gridView2.OptionsView.ShowGroupPanel = false; // gruplama alanı
            this.gridView2.OptionsBehavior.Editable = false;
            this.gridView2.OptionsBehavior.ReadOnly = false;
           
            gridView2.OptionsView.ColumnAutoWidth = false;
            this.gridView2.Appearance.HeaderPanel.TextOptions.WordWrap = DevExpress.Utils.WordWrap.Wrap;
            this.gridView2.ColumnPanelRowHeight = 55;

            gridView2.OptionsView.HeaderFilterButtonShowMode = FilterButtonShowMode.Button;
            
            //DevExpress.XtraEditors.Repository.RepositoryItemImageEdit rpic = new DevExpress.XtraEditors.Repository.RepositoryItemImageEdit(); 
            //rpic.NullText = "No Image";
            //rpic.SizeMode = DevExpress.XtraEditors.Controls.PictureSizeMode.Zoom;
            //DevExpress.Utils.ImageCollection images = new DevExpress.Utils.ImageCollection();
            //for (int i = 0; i < gridView2.RowCount; i++)
            //{
            //    string imgpath = "d:\\S\\K.JPG";         
            //    //gridView2.Rows[i]["ImagePath"].ToString(); 
            //    images.Images.Add(Image.FromFile(imgpath));
            //    rpic.Images = images;
            //    gridView2.Columns["RESIM"].ColumnEdit = rpic;
            //    gridView2.SetRowCellValue(i, "RESIM", rpic);
            //  //  gridView2.SelectRow(i);


            //    // gridView1.SetFocusedRowCellValue("Image",gridView1.Columns["img"].ColumnEdit= rpic);    
            //}     
            
            




            gridView2.BestFitColumns();
        }
        private void vade_ayarla()
        {
            string date1 = dateEdit1.Text;
            
            string yil = date1.Substring(6, 4);
            string ay = date1.Substring(3, 2);
            string gun = date1.Substring(0, 2);
            ilktarih = gun + ay + yil;
        }
        private void simpleButton1_Click(object sender, EventArgs e)
        {
            groupControl1.Visible = false;
            groupControl2.Visible = false;
            KayitliResimleriGetir();
        }
        private void ResimKaydiEkle()
        {
            try
            {
                vade_ayarla();
                int index1 = gridView1.FocusedRowHandle;
                par_31_resim_kaynak_klasor_yolu = text_Hedef.Text;
                string resim_no = Convert.ToString(sqlbaglanti.CommScalar("Select isnull(Max(AttachmentNo),1)+1 FROM dbo.mye_AttachedFiles where TableID=21 and RecID_RECno=" + sip_RECno + "", CommandType.Text));
                string yeni_dosya_adi = "@1_@2_@3_@4_@5_@6", secilen_dosya_adi = "test";
                secilen_dosya_adi = Convert.ToString(gridView1.GetRowCellValue(index1, "DOSYA ADI").ToString());

                yeni_dosya_adi = yeni_dosya_adi.Replace("@1", cari_kodu);
                yeni_dosya_adi = yeni_dosya_adi.Replace("@2", siparis_seri + "-" + siparis_sira + "");
                yeni_dosya_adi = yeni_dosya_adi.Replace("@3", ilktarih);
                yeni_dosya_adi = yeni_dosya_adi.Replace("@4", bolum_adi);
                yeni_dosya_adi = yeni_dosya_adi.Replace("@5", "" + sip_RECno + "");
                yeni_dosya_adi = yeni_dosya_adi.Replace("@6", "Resim_" + resim_no + ".jpeg");
                


                //DOSYA FORMATI SİPNO_RESİMNO_TARİH_DOSYANIN ADI  OLACAK
             
                string par1 = "" + text_kaynak.Text + "\\" + secilen_dosya_adi + "";
                string par2 = par_31_resim_kaynak_klasor_yolu +"\\"+ yeni_dosya_adi;
               
                File.Copy(par1, par2);
                KayitliResimleriGetir();
                sqlbaglanti.CommScalar("INSERT INTO dbo.mye_AttachedFiles (TableID,RecID_DBCno,RecID_RECno,AttachmentNo,FileName) VALUES (21,0," + sip_RECno + "," + resim_no + ",N'" + yeni_dosya_adi + "')", CommandType.Text);

                gridView1.DeleteRow(index1);

            }
            catch { MessageBox.Show("Bir Dosya Seçilemedi"); }
        }
        private void gridView1_DoubleClick(object sender, EventArgs e)
        {
            ResimKaydiEkle();
        }

        private void yenileToolStripMenuItem_Click(object sender, EventArgs e)
        {
            KayitliResimleriGetir();
        }

        private void toolStripMenuItem1_Click(object sender, EventArgs e)
        {

            ResimKaydiEkle();
        }

        private void simpleButton2_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void buttonEdit1_ButtonClick(object sender, ButtonPressedEventArgs e)
        {
            FolderBrowserDialog fBrowser = new FolderBrowserDialog();
            fBrowser.ShowDialog();
            string secilenDizin = fBrowser.SelectedPath;
            text_Hedef.Text= secilenDizin;
            
        }

        private void toolStripMenuItem2_Click(object sender, EventArgs e)
        { if (MessageBox.Show("Secili Resim Dosyası Silinecek.  ", "Onay Ekranı", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK)
            {
                int index1 = gridView2.FocusedRowHandle;
                
                int attach_no = Convert.ToInt32(gridView2.GetRowCellValue(index1, "SN").ToString());   
            
            sqlbaglanti.CommScalar("  DELETE  from mye_AttachedFiles  where TableID=21 AND RecID_RECno="+text_sipari_no.Text+" AND AttachmentNo="+attach_no+"", CommandType.Text);
            gridView2.DeleteRow(index1);
        }}

        private void resimEkleToolStripMenuItem_Click(object sender, EventArgs e)
        {
            groupControl1.Visible = true;
            groupControl2.Visible = true;
        }

        private void simpleButton2_Click_1(object sender, EventArgs e)
        {
            DizinIceriginiListeyeEkle(text_kaynak.Text);
        }

        private void hepsiniEkleToolStripMenuItem_Click(object sender, EventArgs e)
        {
            int satir_sayisi=gridView1.RowCount;
          
            for (int i = 0; i <satir_sayisi ; i++)
            {
                try
                {
                    vade_ayarla();
                    int index1 = i;
                    par_31_resim_kaynak_klasor_yolu = text_Hedef.Text;
                    string resim_no = Convert.ToString(sqlbaglanti.CommScalar("Select isnull(Max(AttachmentNo),1)+1 FROM dbo.mye_AttachedFiles where TableID=21 and RecID_RECno=" + sip_RECno + "", CommandType.Text));
                    string yeni_dosya_adi = "@1_@2_@3_@4_@5_@6", secilen_dosya_adi = "test";
                    secilen_dosya_adi = Convert.ToString(gridView1.GetRowCellValue(index1, "DOSYA ADI").ToString());

                    yeni_dosya_adi = yeni_dosya_adi.Replace("@1", cari_kodu);
                    yeni_dosya_adi = yeni_dosya_adi.Replace("@2", siparis_seri + "-" + siparis_sira + "");
                    yeni_dosya_adi = yeni_dosya_adi.Replace("@3", ilktarih);
                    yeni_dosya_adi = yeni_dosya_adi.Replace("@4", bolum_adi);
                    yeni_dosya_adi = yeni_dosya_adi.Replace("@5", "" + sip_RECno + "");
                    yeni_dosya_adi = yeni_dosya_adi.Replace("@6", "Resim_" + resim_no+".jpeg");



                    //DOSYA FORMATI SİPNO_RESİMNO_TARİH_DOSYANIN ADI  OLACAK
                    sqlbaglanti.CommScalar("INSERT INTO dbo.mye_AttachedFiles (TableID,RecID_DBCno,RecID_RECno,AttachmentNo,FileName) VALUES (21,0," + sip_RECno + "," + resim_no + ",N'" + yeni_dosya_adi + "')", CommandType.Text);

                    string par1 = "" + text_kaynak.Text + "\\" + secilen_dosya_adi + "";
                    string par2 = par_31_resim_kaynak_klasor_yolu +"\\"+ yeni_dosya_adi;
                   
                    
                    File.Copy(par1, par2);
                    
                    KayitliResimleriGetir();

                }
                catch { MessageBox.Show("Bir Dosya Seçilemedi"); }
            }     
        }

        private void çıkışToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void gridView2_DoubleClick(object sender, EventArgs e)
        {

            int index1 = gridView2.FocusedRowHandle;
           
            acilacak_dosya_adi = Convert.ToString(gridView2.GetRowCellValue(index1, "ADI").ToString());
            System.Diagnostics.Process.Start("" + par_30_resim_hedef_klasor_yolu+ "\\"+acilacak_dosya_adi+"");
        }
    }
}